package com.jcfk.eam.domain.dto.base;

import com.jcfk.system.domain.dto.BaseDTO;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * 位置信息
 *
 * @author libinghai
 * @email 35738025@gqq.com
 * @date 2024-04-23
 */
@Data
public class EamLocationInfoDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;
    /**
     * 组织机构主键
     */
    @Length(max = 32, message = "组织机构主键长度不能超过32")
    private String organizationId;
    /**
     * 版本号
     */
    private Long version;

    /**
     * 位置编号
     */
    @Length(max = 50, message = "位置编号长度不能超过50")
    private String locationCode;

    /**
     * 位置名称
     */
    @Length(max = 50, message = "位置名称长度不能超过50")
    private String locationName;

    /**
     * 位置类型
     */
    private Integer locationType;

    /**
     * x坐标
     */
    private BigDecimal locationX;

    /**
     * y坐标
     */
    private BigDecimal locationY;

    /**
     * z坐标
     */
    private BigDecimal locationZ;


    /**
     * 排序
     */
    private Integer sort;

    /**
     * 启用标志
     */
    private Integer enabled;

    /**
     * 全主键
     */
    @Length(max = 255, message = "全主键长度不能超过255")
    private String allId;

    /**
     * 全编号
     */
    @Length(max = 255, message = "全编号长度不能超过255")
    private String allCode;

    /**
     * 全名称
     */
    @Length(max = 255, message = "全名称长度不能超过255")
    private String allName;

    /**
     * 上级目录主键
     */
    private String parentId;

    /**
     * 备注
     */
    @Length(max = 255, message = "备注长度不能超过255")
    private String remarks;

    /**
     * 是否删除
     */
    private Integer deleted;

    /**
     * 创建人姓名
     */
    @Length(max = 50, message = "创建人姓名长度不能超过50")
    private String createdUserName;

    /**
     * 更新人姓名
     */
    @Length(max = 50, message = "更新人姓名长度不能超过50")
    private String lastUpdatedUserName;

    /**
     * 批量删除id
     */
    private List<String> ids;

    /**
     * 子位置列表
     */
    private List<EamLocationInfoDTO> nodes = new ArrayList<>();
}
